﻿function showStatus(rid) {
	if (refreshWin('showStatus' + rid)) return;
	getStatus({
				rid : rid,
				success : onload
			});

	function onload(data) {
		var txtrid = new Ext.form.TextField({
					fieldLabel : 'RID',
					value : data.rid
				});
		var pid = new Ext.form.TextField({
					fieldLabel : 'PID',
					value : data.pid
				});
		var author = new Ext.form.TextField({
					fieldLabel : 'Author',
					value : sys.rd.authorusername(data)
				});
		var submitTime = new Ext.form.TextField({
					fieldLabel : 'SubmitTime',
					value : data.submitTime
				});
		var lang = new Ext.form.TextField({
					fieldLabel : 'Language',
					value : data.lang
				});
		var codeLen = new Ext.form.TextField({
					fieldLabel : 'CodeLength',
					value : data.codeLen + ' B'
				});
		var exeTime = new Ext.form.TextField({
					fieldLabel : 'ExeTime',
					value : sys.rd.exetime(data.exeTime)
				});
		var exeMem = new Ext.form.TextField({
					fieldLabel : 'ExeMemory',
					value : sys.rd.exemem(data.exeMem)
				});
		var status = new Ext.form.TextField({
					fieldLabel : 'Status',
					anchor : '97.5%',
					style : 'font-weight:bold;color:' + sys.rd.getcolor(data.statusCode),
					value : data.status
							+ ((sys.god || sys.user && sys.user.username == data.username)
									&& !Ext.isEmpty(data.reInfo) ? ' (' + data.reInfo + ' '
									+ data.reCode + ')' : ''),
					readOnly : true
				});

		var toolbar = new Ext.Toolbar();
		if (sys.god) toolbar.add(new Ext.Button({
							text : '重判',
							iconCls : 'rejudge-icon',
							handler : function() {
								rejudgeStatus({
											rid : data.rid,
											success : function() {
												win.close();
											}
										});
							}
						}), new Ext.Button({
							text : '测试',
							iconCls : 'test-icon',
							handler : function() {
								testStatus(data.rid);
								win.close();
							}
						}), new Ext.Button({
							text : '删除',
							iconCls : 'delete-icon',
							handler : function() {
								deleteStatus({
											rid : data.rid,
											success : function() {
												win.close();
											}
										});
							}
						}));
		toolbar.add([new Ext.Toolbar.Fill(), new Ext.Button({
							text : '确定',
							iconCls : 'ok-icon',
							handler : function() {
								win.close();
							}
						})]);

		var form = new Ext.FormPanel({
					frame : true,
					labelAlign : 'right',
					labelWidth : 70,
					items : [{
								layout : 'column',
								items : [{
											layout : 'form',
											columnWidth : .5,
											defaults : {
												anchor : '95%',
												readOnly : true
											},
											items : [txtrid, author, lang, exeTime]
										}, {
											layout : 'form',
											columnWidth : .5,
											defaults : {
												anchor : '95%',
												readOnly : true
											},
											items : [pid, submitTime, codeLen, exeMem]
										}]

							}, status]
				});

		var win = new Ext.Window({
					iconCls : 'showstatus-icon',
					id : 'showStatus' + data.rid,
					title : 'Status - ' + data.rid,					width : 520,
					autoHeight : true,
					minWidth : 380,
					items : form,
					bbar : toolbar
				});
		win.show();
	}
}

function getStatus(obj) {
	ajax({
				url : url.getStatus,
				params : {
					rid : obj.rid
				},
				success : obj.success
			});
}